import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const defaultLoginResult = {
    token:null,
    user_id:null,
    user_name:null,
}

export default new Vuex.Store({
    // 共同维护的一个状态，state里面可以是很多个全局状态
    state:{
        isLogin: false,   // 是否已经登录
        loginResult: defaultLoginResult,
        Count: 0,  // 测试参数
    },
    // 处理数据的唯一途径，state的改变或赋值只能在这里
    mutations:{
        init(state){
            let loginResult = JSON.parse(localStorage.getItem('loginResult'));
            console.log(loginResult);
            if (loginResult != null){
                state.loginResult = loginResult;
            }
        },
        login(state, loginResult){
            state.loginResult = loginResult;
        },
        logout(state){
            localStorage.removeItem('loginResult');
            state.loginResult = defaultLoginResult;
        },
        increment(state){
            state.Count += 1;
        },
        decreament(state){
            state.Count -= 1;
        }
    },
    // 数据的异步操作
    actions:{},
    // 获取数据并渲染
    getters:{
        isLogin:state=>state.loginResult.user_id !== null,
        userID:state=>state.loginResult.user_id,
        username:state=>state.loginResult.user_name,
        accessToken:state=>state.loginResult.token,
    },
})